package com.huihui.utils;

import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.WindowManager;
import android.widget.ListAdapter;
import android.widget.ListView;

/**
 * Created by yinsxi on 2018/9/3.
 */

public class ToolUtils {
    public static int getWidth(Context context){
        int width = 0;
        WindowManager wm = ((Activity)context).getWindowManager();
        width = wm.getDefaultDisplay().getWidth();
        return width;
    }

    public static int getHeight(Context context){
        int height = 0;
        WindowManager wm = ((Activity)context).getWindowManager();
        height = wm.getDefaultDisplay().getHeight();
        return height;
    }

    /**
     * convert px to its equivalent dp
     *
     * 将px转换为与之相等的dp
     */
    public static int px2dp(Context context, float pxValue) {
        final float scale =  context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }


    /**
     * convert dp to its equivalent px
     *
     * 将dp转换为与之相等的px
     */
    public static int dp2px(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }


    /**
     * convert px to its equivalent sp
     *
     * 将px转换为sp
     */
    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }


    /**
     * convert sp to its equivalent px
     *
     * 将sp转换为px
     */
    public static int sp2px(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }
    public static int getListViewHeight(ListView listView) {
        int totalHeight = 0;

        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            return totalHeight;
        }

        int height = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.AT_MOST);
            listItem.measure(desiredWidth, 0);
            height += (listItem.getMeasuredHeight());
        }

        totalHeight = height + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        return totalHeight;
    }
}
